﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Entidades;
using AccesoBD;

namespace PresentacionEscritorio
{
    public partial class frmAgregarPacienteAListado : Form, IListadoOrdenLLegada
    {
        public List<ItemListadoOrdenLlegada> lsoL { get; set; }
        public frmAgregarPacienteAListado()
        {
            InitializeComponent();
        }

        private void frmAgregarPacienteAListado_Load(object sender, EventArgs e)
        {
            cargarGrilla();
            cargarComboTipoDocumento();
        }

        private void cargarGrilla()
        {
            List<ItemListadoOrdenLlegada> list = ListadosOrdenLlegada.obtenerListadoEspMedicoNoAtendidos(DateTime.Now);
            if (list != null)
            {
                foreach (ItemListadoOrdenLlegada iL in list)
                {
                    int i = dataGridView1.Rows.Add();

                    Especialidad oE = Especialidades.ObtenerEspecialidad(iL.IdEspecialidad);
                    Pacientess oPS = new Pacientess();
                    Paciente oP = oPS.buscarPaciente(iL.nroHCpaciente);
                    dataGridView1.Rows[i].Cells["Apellido"].Value = iL.ApellidoNombrePaciente;
                    dataGridView1.Rows[i].Cells["NroDocumento"].Value = oP.NroDocumento.ToString();
                    dataGridView1.Rows[i].Cells["HoraLLegada"].Value = iL.horaLLegada.ToString(@"hh\:mm");
                    dataGridView1.Rows[i].Cells["Especialidad"].Value = oE.Nombre;

                    if (iL.Atendido == false)
                    {
                        dataGridView1.Rows[i].Cells["Atendido"].Value = "No";
                    }
                    else
                    {
                        dataGridView1.Rows[i].Cells["Atendido"].Value = "Si";
                    }
                }
            }
            else
            {
                MessageBox.Show("Todavia no hay Pacientes en la lista", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }

        }

        private void cargarComboTipoDocumento()
        {

        }

        private void panel1_Paint(object sender, PaintEventArgs e)
        {

        }

        private void btnAsignarPaciente_Click(object sender, EventArgs e)
        {
            frmAsignarTurno frmAsT = new frmAsignarTurno();
            frmAsT.tipo = 2;//seteamos que es por Orden de llegada
            frmAsT.ShowDialog(this);
        }

        #region Miembros de IListadoOrdenLLegada

        public void addItemLista(List<ItemListadoOrdenLlegada> list)
        {

            dataGridView1.Rows.Clear();
            foreach (ItemListadoOrdenLlegada iL in list)
            {
                int i = dataGridView1.Rows.Add();

                Especialidad oE = Especialidades.ObtenerEspecialidad(iL.IdEspecialidad);
                Pacientess oPS = new Pacientess();
                Paciente oP = oPS.buscarPaciente(iL.nroHCpaciente);
                dataGridView1.Rows[i].Cells["Apellido"].Value = iL.ApellidoNombrePaciente;
                dataGridView1.Rows[i].Cells["NroDocumento"].Value = oP.NroDocumento.ToString();
                dataGridView1.Rows[i].Cells["HoraLLegada"].Value = iL.horaLLegada.ToString(@"hh\:mm");
                dataGridView1.Rows[i].Cells["Especialidad"].Value = oE.Nombre;

                if (iL.Atendido == false)
                {
                    dataGridView1.Rows[i].Cells["Atendido"].Value = "No";
                }
                else
                {
                    dataGridView1.Rows[i].Cells["Atendido"].Value = "Si";
                }

            }

        }

        #endregion

        private void btnCancelar_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void btnAceptar_Click(object sender, EventArgs e)
        {
            this.Close();
        }
    }
}
